Systems and methods for determining optimum putting speed and angle

ABSTRACT

Systems and methods for calculating a path of a golf ball on a putting surface and for calculating an ideal putt direction and speed to cause a golf ball in an initial location on a putting surface to, when putted, enter a hole in a putting surface as described are significantly more computationally efficient and rapid. The efficiency allows implementation of the systems and methods with lower-powered computing devices, including mobile computing devices such as smart phones and the like.

CROSS-REFERENCE TO RELATED APPLICATIONS

This application claims benefit of U.S. Provisional Patent Application No. 62/083,013 (Attorney Docket No. 16649.8), filed Nov. 21, 2014, and entitled “Systems and Methods for Determining Optimum Putting Speed and Angle”. This application is a continuation-in-part application of U.S. patent application Ser. No. 14/538,129 (Attorney Docket No. 16649.9), filed Nov. 11, 2014, and entitled “Digital Compass Ball Marker”, which is a continuation-in-part application of U.S. patent application Ser. No. 13/737,837 (Attorney Docket No. 16649.6), filed Jan. 9, 2013, and entitled “Digital Compass Ball Marker” (now U.S. Pat. No. 8,992,345), which claims the benefit of U.S. Provisional Application No. 61/585,122 (Attorney Docket No. 16649.5), filed Jan. 10, 2012, and is entitled “Digital Compass Ball Marker”, and is a continuation-in-part application of U.S. application Ser. No. 12/240,086 (Attorney Docket No. 16649.2), filed Sep. 29, 2008, and entitled “Method and Device for Improving Putting”, all of which applications are incorporated by reference for all they disclose.

BACKGROUND OF THE INVENTION

1. Field of the Invention

The present invention relates to golf, and more particularly to computer-assisted methods for determining a best putt angle and speed based on a golf ball's initial location on a putting surface.

2. Background and Related Art

Golf is played on golf courses that include various terrain features, including tees, fairways, roughs, woods, water hazards, sand traps (or bunkers), and golf greens (commonly referred to as “the green”). The terrain of the golf course is generally varied so as to enhance the difficulty and play experience of the golf course. The greens further include a hole into which the golfer attempts to place the golf ball. The object of the game is to move a golf ball from the tee into a hole located on each green throughout the golf course. The golf ball is moved from the tee to the green by hitting or stroking the ball with a golf club. Usually, more than one stroke is required to place the golf ball in the hole.

Great skill and precision is required to successfully stroke the golf ball onto the green and eventually into the hole with a minimum number of strokes. Once the ball is on the green, various physical contours and properties of the green must be analyzed by the player to aid the player in accurately putting the ball into the hole. Distance to the hole, lines, slopes, grades, wind speed, wind direction, wetness or dryness of the grass, the length of the grass, the grain of the grass and other variables must be taken into account when determining the direction and swing speed of the golf club.

Some of the most important considerations when putting are the position of the ball on the green and the distance between the ball and the hole. A player's likelihood of success largely depends upon the player knowing these pieces of information. Once the position and distance has been determined, the player may adjust his or her swing accordingly. The position of the ball and the distance between the ball and the hole is typically gauged by pacing or is otherwise estimated by the player. Even when an accurate measurement is obtained, it can be difficult for the player to account for ground conditions and varying slopes of some greens.

Sometimes, a golfer employs a caddie that is familiar with a course and can therefore offer advice on where to aim, how hard to hit a shot, what type of shot to hit, etc. However, caddies are generally not available for the average golfer. To address this, technology has been used to provide digital caddies in the form of special-purpose electronic devices or as programs running on multi-purpose electronic devices that provide much of the information generally provided by a caddy. For example, global positioning system (GPS) devices are available that provide a distance to the hole or an obstacle to assist the golfer in selecting the appropriate club, type of shot, and swing force. Such devices are useful when hitting a drive, approach shot, or other relatively longer distance shot where precision is less important. However, when putting or chipping on the green, where both the direction and force of the shot must be precisely determined, such GPS devices provide little benefit.

Further, a key requirement of any digital caddy is that it must provide information in a sufficiently quick manner so as to not unacceptably slow play. GPS devices can be programmed with the coordinates of tee blocks, fairways, greens, and other features of a golf course so that an instant output of an important distance can be output at any time. Accordingly, because the golfer can rely on the distance output by the GPS device rather than relying on other physical markers on the golf course (e.g. by stepping off a distance from a distance marker), such devices can speed play. However, as stated above, these devices provide little benefit once the ball is on or in close proximity to the green.

BRIEF SUMMARY OF THE INVENTION

Implementation of the invention provides systems, methods, and non-transitory computer-readable media containing code means for implementing methods for calculating a path of a golf ball on a putting surface and systems, methods, and computer-readable media containing code means for implementing methods for calculating an ideal putt direction and speed to cause a golf ball in an initial location on a putting surface to, when putted, enter a hole in a putting surface. According to implementations for calculating an ideal putt direction and speed, a method includes computing-device-performed steps of calculating a first plurality of reverse paths leading from the hole and determining which of the reverse paths passes closest to the initial location of the golf ball. The method also includes calculating an additional plurality of reverse paths leading from the hole, the additional plurality of reverse paths including reverse paths closer to the reverse path that passed closest to the initial location of the golf ball than other prior reverse paths and repeating the steps of determining which of the reverse paths passes closest to the initial location of the golf ball and calculating an additional plurality of reverse paths leading from the hole until one of the additional plurality of reverse paths passes within a selected distance of the initial location of the golf ball. Finally, the method includes determining and outputting a putt speed and angle based on the reverse path that passes within the selected distance of the initial location of the golf ball.

Each reverse path may be calculated using a final, at-the-hole, speed chosen to emulate having the golf ball pass over the hole as if the putting surface lacked the hole, and stop within a chosen distance range of the hole. The chosen distance range may be selected from a variety of distance ranges, such as, for example, between approximately 17 to approximately 19 inches, between approximately 15 to approximately 21 inches, between approximately 13 to approximately 23 inches, between approximately 11 to approximately 25 inches, between approximately 9 to approximately 27 inches, between approximately 7 to approximately 29 inches, between approximately 5 to approximately 31 inches, between approximately 3 to approximately 33 inches, and between approximately 1 to approximately 35 inches.

Calculating each reverse path leading from the hole may include steps of selecting a final, at-the-hole, direction and selecting a final, at-the-hole, speed chosen to emulate having the golf ball pass over the hole in the final, at-the-hole, direction as if there were no hole in the putting surface, and stop within a chosen distance range of the hole. Calculating each reverse path may also include beginning from the hole as a first current location and with a first current velocity of the selected final, at-the-hole, direction and the selected final, at-the-hole, speed and determining a sum of forces to which the golf ball, when rolling across the putting surface, is subject at the current location based on gravitational, normal, and frictional forces at the current location of the golf ball. Calculating each reverse path may also include calculating a previous location and a previous velocity of the golf ball using the current location, the current velocity, and an opposite of the sum of forces at the current location. Calculating each reverse path may also include repeating the steps of calculating the sum of forces to which the rolling golf ball is subject at the current location and calculating a previous location and a previous velocity while using the previous location and the previous velocity as the current location and the current velocity for each repetition until the reverse path has been calculated to a selected extent.

Determining the sum of forces to which the rolling golf ball is subject at the current location may include referencing a force map of the putting surface. The system or method may also generate the force map of the putting surface. Alternatively, determining the sum of forces to which the rolling golf ball is subject at the current location may include determining a slope of the putting surface at the current location and determining a coefficient of rolling friction of the putting surface for current conditions of the putting surface.

According to a specific exemplary implementation, calculating the first plurality of reverse paths involves calculating three reverse paths, namely, a first reverse path having a first direction lying along a line extending between the initial location and the hole, a second reverse path having a first direction at a selected angle from the first direction of the first reverse path, and a third reverse path having a first direction at a selected angle from the first direction of the first reverse path that is opposite and equal to the angel of the second reverse path. In one such implementation, the selected angle of the second reverse path is approximately ninety degrees.

Calculating an additional plurality of reverse paths may include calculating two reverse paths, namely, a first new reverse path having a first new direction at a new angle from the first direction of a best reverse path of the prior calculation iteration, the new angle being approximately half the size of the selected angle from the prior calculation iteration, and a second new reverse path having a second new direction at an angle from the best reverse path of the prior calculation iteration opposite and equal to the new angle of the first new reverse path.

According to some implementations of the invention, the step of determining and outputting a speed and angle based on the reverse path that passes within the selected distance of the initial location of the golf ball includes an action such as determining and outputting a putt speed and angle based on a point of the reverse path that passes within the selected distance of the initial location of the golf ball that is most proximate the initial location of the golf ball, and determining and outputting a putt speed and angle based on an interpolation between two points of the reverse path that passes within the selected distance of the initial location of the golf ball that are most proximate the initial location of the golf ball.

According to implementations for calculating a projected path of a golf ball on a putting surface to a hole in the putting surface, a method may include setting the hole as a current location and selecting a current velocity comprising a selected final, at-the-hole, direction and a selected final, at-the-hole, speed. The method may also include determining the sum of forces to which the golf ball, when rolling, is subject at the current location based on gravitational, normal, and frictional forces at the current location of the golf ball and calculating a previous location and a previous velocity of the golf ball using the current location, the current velocity, and an opposite of the sum of forces at the current location. The method may also include repeating the steps of calculating the sum of forces to which the rolling golf ball is subject at the current location and calculating a previous location and a previous velocity while using the previous location and the previous velocity as the current location and the current velocity for each repetition until the reverse path has been calculated to a selected extent.

In such implementations, the final, at-the-hole, speed may be chosen to emulate having the golf ball pass over the hole in the final, at-the-hole, direction as if there was no hole in the putting surface, and stop within a chosen distance range of the hole.

The method for calculating a projected path of a golf ball on a putting surface may be used in methods for calculating an ideal putt direction and speed to cause a golf ball in an initial location on a putting surface to, when putted, enter a hole in the putting surface. Such a method may include calculating a first plurality of reverse paths leading from the hole according to the method of calculating a projected path on a putting surface and determining which of the reverse paths passes closest to the initial location of the golf ball. The method may also include calculating an additional plurality of reverse paths leading from the hole according to the method of calculating a projected path on a putting surface, the additional plurality of reverse paths including reverse paths closer to the reverse path that passed closest to the initial location of the golf ball than other prior reverse paths and repeating the steps of determining which of the reverse paths passes closest to the initial location of the golf ball and calculating an additional plurality of reverse paths leading from the hole until one of the additional plurality of reverse paths passes within a selected distance of the initial location of the golf ball. The method may also include determining and outputting a speed and angle based on the reverse path that passes within the selected distance of the initial location of the golf ball.

According to some implementations, a precision of calculation of each reverse path may increase as the calculated reverse paths pass more closely to the initial location of the golf ball. Similarly, a step size between current positions and previous positions of each reverse path may be decreased as the calculated reverse paths pass more closely to the initial location of the golf ball. According to some implementations, at each repetition of the steps of determining which of the reverse paths passes closest to the initial location of the golf ball and calculating an additional plurality of reverse paths leading from the hole, an angle between the most widely spaced of the additional plurality of reverse paths is approximately halved.

Implementation of the invention may be associated with special-purpose electronic devices as dedicated golf aids, or may be associated with general-purpose electronic devices, such as an app or program running on any of a variety of electronic devices. Implementation of the invention is significantly less computationally intensive than existing methods for determining a putting speed and angle, allowing for implementations that are less expensive than currently available systems and devices. Additionally, results can be provided more quickly, thereby speeding play.

BRIEF DESCRIPTION OF THE SEVERAL VIEWS OF THE DRAWINGS

The objects and features of the present invention will become more fully apparent from the following description and appended claims, taken in conjunction with the accompanying drawings. Understanding that these drawings depict only typical embodiments of the invention and are, therefore, not to be considered limiting of its scope, the invention will be described and explained with additional specificity and detail through the use of the accompanying drawings in which:

FIG. 1 shows a representative computing device for use with embodiments of the invention;

FIG. 2 shows a representative networked computing device for use with embodiments of the invention;

FIG. 3 illustrates an exemplary computing device environment in which embodiments of the present invention can be implemented;

FIG. 4 illustrates a schematic view of an exemplary configuration of a ball marker;

FIG. 5 illustrates a side cross-sectional view of a green on which a ball marker is used in accordance with one or more embodiments of the present invention;

FIG. 6 illustrates a top view of a green on which a ball marker is used in accordance with one or more embodiments of the present invention;

FIG. 7 illustrates an exemplary view of a display on a ball marker that is used to receive user input of an estimated distance;

FIGS. 8-9 illustrate exemplary views of a display on a ball marker that is used to display recommended swing parameters to a golfer;

FIG. 10 illustrates a flowchart of an exemplary method for generating recommended swing parameters for putting a golf ball on a green;

FIG. 11 illustrates a flowchart of an exemplary method for calculating a reverse putt path leading from a hole in a green;

FIG. 12 illustrates a flowchart of an exemplary method for generating recommended swing parameters for putting a golf ball on a green;

FIG. 13 illustrates a top view of a green showing a first iteration of steps for generating recommended swing parameters for putting a golf ball on a green;

FIG. 14 illustrates a top view of a green showing a second iteration of steps for generating recommended swing parameters for putting a golf ball on a green;

FIG. 15 illustrates a top view of a green showing a third iteration of steps for generating recommended swing parameters for putting a golf ball on a green;

FIG. 16 illustrates a top view of a green showing a fourth iteration of steps for generating recommended swing parameters for putting a golf ball on a green;

FIGS. 17A and 17B illustrate a representative networked computing device for use with embodiments of the invention; and

FIGS. 18A and 18B illustrate additional embodiments of the invention.

DETAILED DESCRIPTION OF THE INVENTION

A description of embodiments of the present invention will now be given with reference to the Figures. It is expected that the present invention may take many other forms and shapes, hence the following disclosure is intended to be illustrative and not limiting, and the scope of the invention should be determined by reference to the appended claims.

Embodiments of the invention provide systems, methods, and computer-readable media containing code means for implementing methods for calculating a path of a golf ball on a putting surface and systems, methods, and computer-readable media containing code means for implementing methods for calculating an ideal putt direction and speed to cause a golf ball in an initial location on a putting surface to, when putted, enter a hole in a putting surface. According to embodiments for calculating an ideal putt direction and speed, a method includes computing-device-performed steps of calculating a first plurality of reverse paths leading from the hole and determining which of the reverse paths passes closest to the initial location of the golf ball. The method also includes calculating an additional plurality of reverse paths leading from the hole, the additional plurality of reverse paths including reverse paths closer to the reverse path that passed closest to the initial location of the golf ball than other prior reverse paths and repeating the steps of determining which of the reverse paths passes closest to the initial location of the golf ball and calculating an additional plurality of reverse paths leading from the hole until one of the additional plurality of reverse paths passes within a selected distance of the initial location of the golf ball. Finally, the method includes determining and outputting a putt speed and angle based on the reverse path that passes within the selected distance of the initial location of the golf ball.

Each reverse path may be calculated using a final, at-the-hole, speed chosen to emulate having the golf ball pass over the hole as if the putting surface lacked the hole, and stop within a chosen distance range of the hole. The chosen distance range may be selected from a variety of distance ranges, such as, for example, between approximately 17 to approximately 19 inches, between approximately 15 to approximately 21 inches, between approximately 13 to approximately 23 inches, between approximately 11 to approximately 25 inches, between approximately 9 to approximately 27 inches, between approximately 7 to approximately 29 inches, between approximately 5 to approximately 31 inches, between approximately 3 to approximately 33 inches, and between approximately 1 to approximately 35 inches.

Calculating each reverse path leading from the hole may include steps of selecting a final, at-the-hole, direction and selecting a final, at-the-hole, speed chosen to emulate having the golf ball pass over the hole in the final, at-the-hole, direction as if there were no hole in the putting surface, and stop within a chosen distance range of the hole. Calculating each reverse path may also include beginning from the hole as a first current location and with a first current velocity of the selected final, at-the-hole, direction and the selected final, at-the-hole, speed and determining a sum of forces to which the golf ball, when rolling across the putting surface, is subject at the current location based on gravitational, normal, and frictional forces at the current location of the golf ball. Calculating each reverse path may also include calculating a previous location and a previous velocity of the golf ball using the current location, the current velocity, and an opposite of the sum of forces at the current location. Calculating each reverse path may also include repeating the steps of calculating the sum of forces to which the rolling golf ball is subject at the current location and calculating a previous location and a previous velocity while using the previous location and the previous velocity as the current location and the current velocity for each repetition until the reverse path has been calculated to a selected extent.

Determining the sum of forces to which the rolling golf ball is subject at the current location may include referencing a force map of the putting surface. The system or method may also generate the force map of the putting surface. Alternatively, determining the sum of forces to which the rolling golf ball is subject at the current location may include determining a slope of the putting surface at the current location and determining a coefficient of rolling friction of the putting surface for current conditions of the putting surface.

According to a specific exemplary embodiments, calculating the first plurality of reverse paths involves calculating three reverse paths, namely, a first reverse path having a first direction lying along a line extending between the initial location and the hole, a second reverse path having a first direction at a selected angle from the first direction of the first reverse path, and a third reverse path having a first direction at a selected angle from the first direction of the first reverse path that is opposite and equal to the angel of the second reverse path. In one such embodiment, the selected angle of the second reverse path is approximately ninety degrees.

Calculating an additional plurality of reverse paths may include calculating two reverse paths, namely, a first new reverse path having a first new direction at a new angle from the first direction of a best reverse path of the prior calculation iteration, the new angle being approximately half the size of the selected angle from the prior calculation iteration, and a second new reverse path having a second new direction at an angle from the best reverse path of the prior calculation iteration opposite and equal to the new angle of the first new reverse path.

According to some embodiments of the invention, the step of determining and outputting a speed and angle based on the reverse path that passes within the selected distance of the initial location of the golf ball includes an action such as determining and outputting a putt speed and angle based on a point of the reverse path that passes within the selected distance of the initial location of the golf ball that is most proximate the initial location of the golf ball, and determining and outputting a putt speed and angle based on an interpolation between two points of the reverse path that passes within the selected distance of the initial location of the golf ball that are most proximate the initial location of the golf ball.

According to embodiments for calculating a projected path of a golf ball on a putting surface to a hole in the putting surface, a method may include setting the hole as a current location and selecting a current velocity comprising a selected final, at-the-hole, direction and a selected final, at-the-hole, speed. The method may also include determining the sum of forces to which the golf ball, when rolling, is subject at the current location based on gravitational, normal, and frictional forces at the current location of the golf ball and calculating a previous location and a previous velocity of the golf ball using the current location, the current velocity, and an opposite of the sum of forces at the current location. The method may also include repeating the steps of calculating the sum of forces to which the rolling golf ball is subject at the current location and calculating a previous location and a previous velocity while using the previous location and the previous velocity as the current location and the current velocity for each repetition until the reverse path has been calculated to a selected extent.

In such embodiments, the final, at-the-hole, speed may be chosen to emulate having the golf ball pass over the hole in the final, at-the-hole, direction as if there was no hole in the putting surface, and stop within a chosen distance range of the hole.

The method for calculating a projected path of a golf ball on a putting surface may be used in methods for calculating an ideal putt direction and speed to cause a golf ball in an initial location on a putting surface to, when putted, enter a hole in the putting surface. Such a method may include calculating a first plurality of reverse paths leading from the hole according to the method of calculating a projected path on a putting surface and determining which of the reverse paths passes closest to the initial location of the golf ball. The method may also include calculating an additional plurality of reverse paths leading from the hole according to the method of calculating a projected path on a putting surface, the additional plurality of reverse paths including reverse paths closer to the reverse path that passed closest to the initial location of the golf ball than other prior reverse paths and repeating the steps of determining which of the reverse paths passes closest to the initial location of the golf ball and calculating an additional plurality of reverse paths leading from the hole until one of the additional plurality of reverse paths passes within a selected distance of the initial location of the golf ball. The method may also include determining and outputting a speed and angle based on the reverse path that passes within the selected distance of the initial location of the golf ball.

According to some embodiments, a precision of calculation of each reverse path may increase as the calculated reverse paths pass more closely to the initial location of the golf ball. Similarly, a step size between current positions and previous positions of each reverse path may be decreased as the calculated reverse paths pass more closely to the initial location of the golf ball. According to some embodiments, at each repetition of the steps of determining which of the reverse paths passes closest to the initial location of the golf ball and calculating an additional plurality of reverse paths leading from the hole, an angle between the most widely spaced of the additional plurality of reverse paths is approximately halved.

As embodiments of the invention may be implemented using a variety of general-purpose and special-purpose electronic and computing devices, FIG. 1 and the corresponding discussion are intended to provide a general description of a suitable operating environment in which embodiments of the invention may be implemented. One skilled in the art will appreciate that embodiments of the invention may be practiced by one or more computing devices and in a variety of system configurations, including in a networked configuration. However, while the methods and processes of the present invention have proven to be particularly useful in association with a system comprising a general purpose computer, embodiments of the present invention include utilization of the methods and processes in a variety of environments, including embedded systems with general purpose processing units, digital/media signal processors (DSP/MSP), application specific integrated circuits (ASIC), standalone electronic devices, and other such electronic environments.

Embodiments of the present invention embrace one or more computer-readable media, wherein each medium may be configured to include or includes thereon data or computer executable instructions for manipulating data. The computer executable instructions include data structures, objects, programs, routines, or other program modules that may be accessed by a processing system, such as one associated with a general-purpose computer capable of performing various different functions or one associated with a special-purpose computer capable of performing a limited number of functions. Computer executable instructions cause the processing system to perform a particular function or group of functions and are examples of program code means for implementing steps for methods disclosed herein. Furthermore, a particular sequence of the executable instructions provides an example of corresponding acts that may be used to implement such steps. Examples of computer-readable media include random-access memory (“RAM”), read-only memory (“ROM”), programmable read-only memory (“PROM”), erasable programmable read-only memory (“EPROM”), electrically erasable programmable read-only memory (“EEPROM”), compact disk read-only memory (“CD-ROM”), or any other device or component that is capable of providing data or executable instructions that may be accessed by a processing system. While embodiments of the invention embrace the use of all types of computer-readable media, certain embodiments as recited in the claims may be limited to the use of tangible, non-transitory computer-readable media, and the phrases “tangible computer-readable medium” and “non-transitory computer-readable medium” (or plural variations) used herein are intended to exclude transitory propagating signals per se.

With reference to FIG. 1, a representative system for implementing embodiments of the invention includes computer device 10, which may be a general-purpose or special-purpose computer or any of a variety of consumer electronic devices. For example, computer device 10 may be a personal computer, a notebook or laptop computer, a netbook, a personal digital assistant (“PDA”) or other hand-held device, a smart phone, a tablet computer, a workstation, a minicomputer, a mainframe, a supercomputer, a multi-processor system, a network computer, a processor-based consumer electronic device, a computer device integrated into another device or vehicle, a golf-specific device, a GPS device, or the like.

Computer device 10 includes system bus 12, which may be configured to connect various components thereof and enables data to be exchanged between two or more components. System bus 12 may include one of a variety of bus structures including a memory bus or memory controller, a peripheral bus, or a local bus that uses any of a variety of bus architectures. Typical components connected by system bus 12 include processing system 14 and memory 16. Other components may include one or more mass storage device interfaces 18, input interfaces 20, output interfaces 22, and/or network interfaces 24, each of which will be discussed below.

Processing system 14 includes one or more processors, such as a central processor and optionally one or more other processors designed to perform a particular function or task. It is typically processing system 14 that executes the instructions provided on computer-readable media, such as on memory 16, a magnetic hard disk, a removable magnetic disk, a magnetic cassette, an optical disk, or from a communication connection, which may also be viewed as a computer-readable medium or may provide access to a remote computer-readable medium.

Memory 16 includes one or more computer-readable media that may be configured to include or includes thereon data or instructions for manipulating data, and may be accessed by processing system 14 through system bus 12. Memory 16 may include, for example, ROM 28, used to permanently store information, and/or RAM 30, used to temporarily store information. ROM 28 may include a basic input/output system (“BIOS”) having one or more routines that are used to establish communication, such as during start-up of computer device 10. RAM 30 may include one or more program modules, such as one or more operating systems, application programs, and/or program data.

One or more mass storage device interfaces 18 may be used to connect one or more mass storage devices 26 to system bus 12. The mass storage devices 26 may be incorporated into or may be peripheral to computer device 10 and allow computer device 10 to retain large amounts of data. Optionally, one or more of the mass storage devices 26 may be removable from computer device 10. Examples of mass storage devices include hard disk drives, magnetic disk drives, tape drives, flash memory drives, and optical disk drives. A mass storage device 26 may read from and/or write to a magnetic hard disk, a removable magnetic disk, a magnetic cassette, an optical disk, flash memory, or another computer-readable medium. Mass storage devices 26 and their corresponding computer-readable media provide nonvolatile storage of data and/or executable instructions that may include one or more program modules such as an operating system, one or more application programs, other program modules, or program data. Such executable instructions are examples of program code means for implementing steps for methods disclosed herein.

One or more input interfaces 20 may be employed to enable a user to enter data and/or instructions to computer device 10 through one or more corresponding input devices 32. Examples of such input devices include a keyboard and alternate input devices, such as a mouse, trackball, light pen, stylus, or other pointing device, a microphone, a joystick, a game pad, a satellite dish, a scanner, a camcorder, a digital camera, a touch screen, and the like. Similarly, examples of input interfaces 20 that may be used to connect the input devices 32 to the system bus 12 include a serial port, a parallel port, a game port, a universal serial bus (“USB”), an integrated circuit, a firewire (IEEE 1394), or another interface. For example, in some embodiments input interface 20 includes an application specific integrated circuit (ASIC) that is designed for a particular application. In a further embodiment, the ASIC is embedded and connects existing circuit building blocks.

One or more output interfaces 22 may be employed to connect one or more corresponding output devices 34 to system bus 12. Examples of output devices include a monitor or display screen, lights, a speaker, a printer, a multi-functional peripheral, and the like. A particular output device 34 may be integrated with or peripheral to computer device 10. Examples of output interfaces include a video adapter, an audio adapter, a parallel port, and the like.

One or more network interfaces 24 enable computer device 10 to exchange information with one or more other local or remote computer devices, illustrated as computer devices 36, via a network 38 that may include hardwired and/or wireless links. Examples of network interfaces include a network adapter for connection to a local area network (“LAN”) or a modem, wireless link, or other adapter for connection to a wide area network (“WAN”), such as the Internet. The network interface 24 may be incorporated with or peripheral to computer device 10. In a networked system, accessible program modules or portions thereof may be stored in a remote memory storage device. Furthermore, in a networked system computer device 10 may participate in a distributed computing environment, where functions or tasks are performed by a plurality of networked computer devices.

Thus, while those skilled in the art will appreciate that embodiments of the present invention may be practiced in a variety of different environments with many types of system configurations, FIG. 2 provides a representative networked system configuration that may be used in association with embodiments of the present invention. The representative system of FIG. 2 includes a computer device, illustrated as client 40, which is connected to one or more other computer devices (illustrated as client 42 and client 44) and one or more peripheral devices 46 across network 38. While FIG. 2 illustrates an embodiment that includes a client 40, two additional clients, client 42 and client 44, one peripheral device 46, and optionally a server 48, which may be a print server, connected to network 38, alternative embodiments include more or fewer clients, more than one peripheral device 46, no peripheral devices 46, no server 48, and/or more than one server 48 connected to network 38. Other embodiments of the present invention include local, networked, or peer-to-peer environments where one or more computer devices may be connected to one or more local or remote peripheral devices. Moreover, embodiments in accordance with the present invention also embrace a single electronic consumer device, wireless networked environments, and/or wide area networked environments, such as the Internet, accessible via any desirable connection, such as cellular, satellite, and other network connections.

Similarly, embodiments of the invention embrace cloud-based architectures where one or more computer functions are performed by remote computer systems and devices at the request of a local computer device. Thus, returning to FIG. 2, the client 40 may be a computer device having a limited set of hardware and/or software resources. Because the client 40 is connected to the network 38, it may be able to access hardware and/or software resources provided across the network 38 by other computer devices and resources, such as client 42, client 44, server 48, or any other resources. The client 40 may access these resources through an access program, such as a web browser or a dedicated program, and the results of any computer functions or resources may be delivered through the access program to the user of the client 40. In such configurations, the client 40 may be any type of computer device or electronic device discussed above or known to the world of cloud computing, including traditional desktop and laptop computers, smart phones and other smart devices, tablet computers, golf-specific devices, or any other device able to provide access to remote computing resources through an access program.

FIG. 17A illustrates an embodiment of a satellite-based navigation system 400. In some embodiments, a satellite-based navigation system 400 can comprise satellites 410 that orbit the Earth 402 and transmit navigation signals 420 that relay the satellites' current time and position. A receiver 430 can receive the transmitted navigation signals 420 and can perform calculations to determine the receiver location 440 of the receiver 430 on Earth 402. In other embodiments, a satellite-based navigation system 400 can comprise a constellation of satellites 410 that are configured to orbit the Earth 402 such that the receiver 430 can receive signals from at least four satellites 410 at any one time. In yet other embodiments, the satellite constellation can comprise additional satellites 410 to increase the number of navigation signals 420 that the receiver 430 can receive to improve the determination of the receiver location 440. In some embodiments, the receiver location 440 can comprise longitude and latitude positions. In other embodiments, the receiver location 440 can comprise altitude positions.

In some embodiments, each satellite 410 can transmit a navigation signal 420 that comprises the orbital data (from which the satellite's position can be calculated) and the precise time that the signal was transmitted. In other embodiments, the navigation signal 420 can comprise a carrier frequency with modulation that includes a known pseudorandom code and a time of transmission. In yet other embodiments, the receiver 430 can calculate a time of flight by aligning the pseudorandom code and comparing the time of transmission to determine a distance to a satellite 410. The receiver 430 can determine the distance to at least four satellites 410 and can use the known positions of the satellites 410 to compute the receiver location 440.

In some embodiments, satellite-based navigation systems 400 can comprise a global navigation satellite system (GNSS) comprising a satellite constellation with global coverage. Global navigation satellite systems can include Global Positioning System (GPS), GLONASS, Galileo, COMPASS/Beidou2, IRNSS, and/or Quasi-Zenith Satellite System (QZSS). In other embodiments, satellite-based navigation systems 400 can include regional satellite navigation systems comprising satellite constellations with regional coverage.

GPS is a United States-sponsored satellite-based navigation system 400 with a constellation of 32 medium Earth orbit satellites. GPS satellites transmit an L1 carrier signal carrying the C/A (civilian access or coarse acquisition) code and the L2 carrier. Newer GPS satellites can also transmit an L2C signal and an L5 signal. GLONASS is a Russian satellite-based navigation system 400 comprising a constellation of 22 satellites. GLONASS satellites transmit two different frequencies for each satellite (frequency division multiple access or FDMA signals). Newer GLONASS satellites can transmit a new CDMA signal called L3 as well as FDMA signals and CDMA signal on L1 and L2 bands. Galileo is a satellite-based navigation system 400 sponsored by the European Union. Galileo satellites can transmit L1 and L5-like signals that are compatible with GPS receivers. Galileo will include an Open Service (OS) that will offer E1 and E5 signals that are similar to L1 and L5. However, the E5 signal resolution will be as much as three times that of GPS L1. China's satellite-based navigation system 400, COMPASS/Beidou2, is a regional system that comprises nine satellites that transmit on four carrier frequency bands. Quasi-Zenith Satellite System (QZSS) is a Japanese-sponsored satellite-based navigation system 400 that provides high elevation satellites to overcome problems with receiving navigation signals in urban canyons. The first QZSS satellite broadcasts L1 and L2C signals with the capacity to broadcast L1C and L5 signals. The QZSS system will comprise additional satellites and become a regional satellite-based navigation system.

In some embodiments, satellite-based navigation systems 400 can further comprise augmentation systems to enhance positioning accuracy and integrity monitoring. In other embodiments, augmentation of satellite-based navigation systems 400 can comprise methods of improving accuracy, reliability, and/or availability by integrating external information into the calculation process. In yet other embodiments, this external information can comprise additional information about sources of error such as clock drift, ephemeris, or ionospheric delay. In some embodiments, augmentation systems can comprise satellite-based augmentation systems (SBAS). SBAS systems can comprise a ground-based control segment which provides corrections between satellite-calculated position determination and actual position. These corrections can be broadcast to geostationary satellites that can then transmit the corrections to receivers. The receivers can then apply the corrections to the satellite-calculated position determination to enhance accuracy of the determined location. In yet other embodiments, SBAS systems can include US Wide Area Augmentation System (WAAS) that broadcasts an extra GPS signal along with the correction signals to achieve differential GPS corrected positioning. In some embodiments, SBAS systems can include EGNOS (European Geostationary Navigation Overlay Service) and Japan's MSAS (Multi-functional Satellite Augmentation System). In some embodiments, satellite-based augmentation systems (SBAS) can comprise wide-area DGPS (WADGPS). In some embodiments, satellite-based augmentation systems (SBAS) can comprise Wide Area GPS Enhancement (WAGE), StarFire navigation system (operated by John Deere), Starfix DGPS System (operated by Fugro), and/or OmniSTAR system (operated by Fugro).

In some embodiments, satellite-based navigation systems 400 can further comprise ground based augmentation systems (GBAS) to enhance positioning accuracy and integrity monitoring. In other embodiments, satellite-based navigation systems 400 can further comprise ground based regional augmentation systems (GRAS) to enhance positioning accuracy and integrity monitoring. GBAS and GRAS systems can comprise a ground-based control segment which provides corrections between satellite-calculated position determination and actual position. These corrections can be broadcast to receivers that apply the corrections to the satellite-calculated position determination to enhance accuracy of the determined location. In yet other embodiments, GBAS and GRAS systems can transmit the corrections through terrestrial radio signals. In some embodiments, GBAS systems can transmit corrections through VHF or UHF bands. In other embodiments, GRAS systems can transmit corrections through VHF bands. In yet other embodiments, GBAS systems can comprise International Civil Aviation Organization, Ground-based Augmentation System, Local Area Augmentation System (LAAS), US Nationwide Differential GPS System (NDGPS), and/or differential GPS (DGPS) systems.

In some embodiments, the satellite-based system may be augmented by precise point positioning (PPP). In PPP, an augmentation system has information on the exact positions and clock errors of satellites 410. This information on the exact positions and clock errors of satellites 410 can be transmitted to receivers 420 to be used to enhance accuracy of the location determination. In other embodiments, this information on the exact positions and clock errors of satellites 410 can be transmitted to receivers 420 via the Internet.

FIG. 17B illustrates an embodiment of a Real Time Kinematic (RTK) satellite-based navigation system 401. In some embodiments, an RTK system 401 can provide enhanced position data as compared to satellite-based navigation systems alone. In other embodiments, RTK systems 401 can comprise satellites 410 that orbit the Earth 402 and transmit navigation signals 430 that relay the satellites' current time and position. In yet other embodiments, a receiver 420 in an RTK system 401 can receive navigation signals 430 from the satellites 410 that comprise a pseudorandom code on a carrier wave. The RTK receiver 420 can use the phase of the carrier wave signal to determine the receiver location 440 of the receiver 420 on Earth 402. In some embodiments, an RTK system 401 can further comprise a base station receiver 450. The precise location 460 of the base station 450 can be determined. The base station 450 can receive navigation signals 430 from the satellites 410 that comprise a carrier wave and measure the phase of the carrier wave signal. The base station 450 can transmit 470 phase measurements of the carrier wave signal to the RTK receiver 420. In some embodiments, the RTK receiver 420 can compare the base station phase measurements with the RTK receiver phase measurements to determine the position 440 of the RTK receiver 420. In other embodiments, the RTK receiver 420 can determine the position 440 of the RTK receiver 420 by comparing the base station phase measurements with the RTK receiver phase measurements and by using the precise location 460 of the base station 450. In some embodiments, the base station 450 can transmit 470 phase measurements of the carrier wave signal to the RTK receiver 420 with low power spread-spectrum radio signals, UHF/VHF radio signals, GSM/CDMA phone network signals, and/or RTK network signals. In other embodiments, the base station 450 can transmit 470 phase measurements of the carrier wave signal to the RTK receiver 420 via the Internet.

In yet other embodiments, an RTK system 401 can determine the position 440 of the RTK receiver 420 to within 30 cm. In some embodiments, an RTK system 401 can determine the position 440 of the RTK receiver 420 to within 10 cm. In other embodiments, an RTK system 401 can determine the position 440 of the RTK receiver 420 to within 5 cm. In other embodiments, an RTK system 401 can determine the position 440 of the RTK receiver 420 to within 2 cm. In other embodiments, an RTK system 401 can determine the position 440 of the RTK receiver 420 to within 1 cm. In other embodiments, an RTK system 401 can determine the position 440 of the RTK receiver 420 to within 4 mm.

In some embodiments, an RTK system 401 can determine the position of the ball 330 to within 30 cm. In other embodiments, an RTK system 401 can determine the position of the ball 330 to within 10 cm. In yet other embodiments, an RTK system 401 can determine the position of the ball 330 to within 5 cm. In some embodiments, an RTK system 401 can determine the position of the ball 330 to within 2 cm. In other embodiments, an RTK system 401 can determine the position of the ball 330 to within 1 cm. In other embodiments, an RTK system 401 can determine the position of the ball 330 to within 4 mm. In yet other embodiments, the RTK system 401 can determine the position of the ball 330 relative to the base station 450 with enhanced accuracy compared to determining the absolute position of the ball 330 on Earth 402. In some embodiments, determining the position of the ball 330 relative to the base station 450 can be more effective for determining recommended swing parameters because the position of the base station 450 relative to the green 300 and the hole 322 can be known.

FIG. 18 illustrates a perspective view of green 300 to describe how ball marker 101 uses position module 201 to determine the position of ball 330 relative to the green 300 and relative to the position of the hole 322. Ball marker 101 can include an indication for orienting the ball marker in the appropriate position. As shown in FIG. 5, the indication can be an arrow 510 contained or displayed on ball marker 101 that is aligned with hole 322 when the ball marker 101 is placed behind the ball 330. This indication can define the line 503 between the ball 330 and the hole 322. In other embodiments, ball marker 101 can have a particular shape (e.g. a triangular shape) or other feature that defines the indication. The ball marker 101 can be appropriately oriented behind the ball 330 so that the indication is pointing towards the hole 322 and the ball marker 101 can be activated to determine the position of the ball 330. In some embodiments the ball marker 101 can be activated by activating positioning module 201 to determine the position of the ball 330. Although FIG. 5 shows ball 330 being left on the putting surface 310 during the placement and activation of ball marker 101, in some embodiments, ball 330 can be picked up after being marked by ball marker 101.

In some embodiments, the positioning module 201 can determine the position of the ball 330 by Real Time Kinematic satellite-based navigation. The positioning module 201 can comprise an RTK receiver 420 configured to receiver navigation signals 420 from a constellation of satellites 410. In other embodiments, the positioning module 201 can receive navigation signals 420 from the satellites 410 that comprise a pseudorandom code on a carrier wave. The positioning module 201 can use the phase of the carrier wave signal to determine the location 440 of the ball 330 on the green 300. In some embodiments, a base station 450 can be used by positioning module 201 to determine the position of the ball 330. The precise location 460 of the base station 450 can be determined. The base station 450 can receive navigation signals 430 from the satellites 410 that comprise a carrier wave and measure the phase of the carrier wave signal. The base station 450 can transmit 470 phase measurements of the carrier wave signal to the ball marker 201. In some embodiments, the ball marker 101 can compare the base station phase measurements with the positioning module 201 phase measurements to determine the position 440 of the ball 330. In other embodiments, the ball marker 101 can determine the position 440 of the ball marker 101 by comparing the base station phase measurements with the positioning module 201 phase measurements and by using the precise location 460 of the base station 450.

In some embodiments, the base station 450 can be located on the golf course relative to a known, fixed landmark such as a sprinkler head. In other embodiments, the base station 450 can be provided by the golfer and can be affixed to a known, fixed landmark before beginning play and remain in the fixed location during play. In yet other embodiments, the base station 450 can be provided by the golfer and affixed to a known, fixed landmark at each green 300.

In some embodiments, the ball receiver 101 can use positioning module 201 to determine the ball position based on a satellite-based navigation system 400 without RTK. In other embodiments, the ball receiver 101 can use positioning module 201 to determine the ball position based on satellite-based augmentation systems (SBAS). In yet other embodiments, the ball receiver 101 can use positioning module 201 to determine the ball position based on wide-area DGPS (WADGPS). In some embodiments, the ball receiver 101 can used positioning module 201 to determine the ball position based on ground based augmentation systems (GBAS). In other embodiments, the ball receiver 101 can used positioning module 201 to determine the ball position based on ground based regional augmentation systems (GRAS). In yet other embodiments, the ball receiver 101 can be used positioning module 201 to determine the ball position based on International Civil Aviation Organization, Ground-based Augmentation System, Local Area Augmentation System (LAAS), US Nationwide Differential GPS System (NDGPS), and/or differential GPS (DGPS) systems. In some the ball receiver 101 can be used positioning module 201 to determine the ball position based on PPP.

In some embodiments, the golfer can place the ball marker 101 behind the golf ball 330 and can activate the ball marker 101. Typically, a golfer is required to mark his ball on the green with some type of ball marker, and therefore, placing ball marker 101 behind ball 330 and activating the ball marker 101 does not require any additional time than would otherwise be taken by the golfer. Because ball marker 101 can provide recommended force and direction information for putting the ball, which the typical golfer would otherwise spend a significant amount of time determining mentally, the use of ball marker 101 may not slow play, and in many cases may even speed play.

In some embodiments, ball marker 101 can inform the golfer approximately how hard the putt should be hit and the approximate direction to aim. This information can be determined and returned immediately by server system 103 for display on ball marker 101 thereby relieving the golfer from having to spend the time to figure out this information on his own. The golfer only needs to view the information on ball marker 101 and play the shot accordingly.

In some embodiments, the ball marker 101 determines the position of the ball 330 on the green 300 by using the positioning module 201. The position of the ball 330 on the green can then be transmitted to the server system 103 by the communication module 203. Using this position in combination with the known position of the hole 322 and the topography of the green 300, server system 103 can calculate the approximate amount of force with which the ball 330 should be hit, and the approximate direction to hit the ball 330. For example, based on the topography of the green 300 between the position of the ball 330 and the hole 322, server system 103 can determine that the hole 322 is four feet uphill from the ball 330 and that there is a rightward slope of 10 degrees. Server system 103 can therefore recommend hitting the ball x feet to the left of the hole (to account for the break to the right) and with a force y (to account for the uphill slope).

FIG. 3 illustrates an exemplary computing environment 50 in which embodiments of the present invention can be implemented. Computing environment 50 represents one embodiment and implementation of the present invention; however, as clarified below, other embodiments and implementations are also possible.

Computing environment 50 includes a digital compass ball marker 52 that is connected to a mobile computing device 54 (e.g. a smart phone) via connection 56. Connection 56 can be a Bluetooth connection; however, any other type of connection over which two computing devices can communicate could be used. Mobile computing device 54 is connected to server system 58 via connection 60. Connection 60 can be a mobile network data connection; however, any other type of connection can also be used.

Mobile computing device 54 can be any type of computing device that can be carried by the golfer. In one example, mobile computing device 54 can be the golfer's smart phone having an app for communicating with ball marker 52 and server system 58. Server system 58 represents any number and type of interconnected server computing resources. For example, server system 58 can represent a cloud of computing resources or a single server. Accordingly, the particular architecture of mobile computing device 54 and server system 58 is not essential to the illustration of the invention.

In an example of usage, a golfer will carry ball marker 52 and mobile computing device 54 onto the green, and use ball marker 52 to mark his ball. Ball marker 52 communicates information to mobile computing device 54 which is routed to server system 58. Server system 58 uses the information to calculate the force and direction information for the shot and routes this information back to ball marker 52 via mobile computing device 54. Ball marker 52 can then display the force and direction information to the golfer to assist the golfer in playing the shot.

In another example of usage, a golfer will carry ball marker 52 and mobile computing device 54 onto the golf course. Prior to entering the golf course, mobile computing device 54 communicates with server system 58 and obtains any and all information necessary to provide the functionality discussed herein. Mobile computing device 54 uses information obtained from the server system 58 prior to the round along with information communicated from ball marker 52 to calculate the force and direction information for the shot, and either communicates this information directly to the user via a display of mobile computing device 54, or communicates this information back to ball marker 52 for display to the golfer.

FIG. 4 illustrates an exemplary embodiment of ball marker 52 in further detail. As shown, ball marker 52 can include a compass module 62, an input module 64, and a communication module 66. Compass module 62 can be used to determine an angle from true (or magnetic) north at which the ball marker 52 is placed. The role of compass module 62 will be further described below. Input module 64 comprises any type of logic or circuitry for receiving user input. For example, input module 64 can comprise components for receiving user input via a touch screen, buttons, wheels, speech, etc. Similarly, communication module 66 can comprise any type of logic or circuitry for communicating with another computing device such as mobile computing device 54. For example, communication module 66 can include components for communicating using Bluetooth, Wi-Fi, Infrared, NFC, or any other suitable type of communication protocol.

In some embodiments, compass module 62 can include magneto-inductive technology that is used to determine true north. In some embodiments, compass module 62 comprises a magnetometer such as a 3-axis tilt compensated compass (e.g. the OS4000 Nano Compass which is available from OceanServer Technology, Inc.).

Compass module 62 may further comprise circuitry and components to electronically sense the difference in the Earth's magnetic field from a disturbance caused by external elements, such as ferromagnetic materials and any magnetic field generated by the remaining components of ball marker 52. For example, in some embodiments compass module 62 further comprises an embedded microcontroller that determines and subtracts any magnetic distortions from the stronger earth magnetic field thereby resulting in a highly accurate true north reading.

Referring now to FIG. 5, a cross-sectional side view of a green 70 is shown. Green 70 generally comprises a putting surface 72 having a hole 74 marked by a flagstick or pin 76. Putting surface 72 comprises grass that is cut very short so that a golf ball 78 may roll for a long distance. Putting surface 72 may further include various physical contours, such as slopes or grades which are designed to challenge the player in placing the ball 78 into hole 74. Accordingly, a player must account for the physical contours of putting surface 72 when putting ball 78 into hole 74.

To accurately provide swing parameters (e.g. force and direction information) for putting ball 78 into hole 74, several items of information are useful: (1) the position of ball 78 on green 70; (2) the position of hole 74 on green 70; (3) the topography of green 70 (e.g. the slope of putting surface 72 between ball 78 and hole 74); (4) current characteristics of the putting surface 72 (e.g. moisture, hardness, softness, etc. or any other information useful in determining how “fast” the putting surface 72 is currently behaving). Embodiments and implementations of the present invention enable the quick determination of the information and the calculation of recommended swing parameters in an accurate manner without slowing play.

Specifically, the topography of green 70 and the position of hole 74 can be preprogrammed into server system 58 (because the topography should remain constant and the position of hole 74 is changed relatively infrequently and can be updated accordingly). Such information can be used by server system 58 or may be downloaded to mobile computing device 54 at any time prior to using the information to determine and provide swing parameters. In contrast, the position of ball 78 is different for each golfer. Accordingly, ball marker 52 can be used to determine the position of ball 78 on green 70. In one type of embodiment, the determination of the position of ball 78 can use two types of data: (1) the angle from true north formed by a line between the ball 78 and the hole 74; and (2) the distance between ball 78 and hole 74. The determination of the position of ball 78 can be made by any other desired method.

FIG. 6 illustrates a top view of green 70 to illustrate how ball marker 52 may use compass module 62 to determine an angle 80 from true north 82 formed by a line 84 between the ball 78 and the hole 74. Ball marker 52 can include an indication for orienting the ball marker in the appropriate position. As shown in FIG. 6, the indication can be an arrow 86 contained or displayed on ball marker 52 that is aligned with hole 74 when the ball marker is placed behind the ball. This indication can define the line 84 between the ball 78 and the hole 74. In other embodiments, ball marker 52 can have a particular shape (e.g. a triangular shape) or other feature that defines the indication. Where the indication is displayed on ball marker 52, it may be displayed permanently or temporarily.

When ball marker 52 is appropriately oriented behind the ball 78 so that the indication is pointing towards the hole 74, an angle 80 between true north 82 and the line 84 defined when the ball marker 52 is thus oriented can be reported by ball marker 52 to mobile computing device 54. For example, as shown in FIG. 6, the line 84 defines an angle of approximately forty degrees from true north which can be reported by ball marker 52 to mobile computing device 54. Although FIG. 4 shows ball 78 being left on the putting surface during the placement of ball marker 52, ball 78 may be picked up after being marked by ball marker 52.

Next, the distance between the ball 78 and the hole 74 can be obtained in any of a variety of ways. In one embodiment, the distance can be obtained from the golfer as an estimate. For example, the golfer can view the distance, step off the distance, measure the distance with a separate device, etc. and provide an estimate. In this manner, the distance can be quickly and easily provided so that the rate of play is not slowed when ball marker 52 is used. In some embodiments, the distance can also be provided using mobile computing device 54, such as using a range finder of mobile computing device 54 or using one or more photographs as further described below.

FIG. 7 illustrates an exemplary configuration of ball marker 52 that can be used to receive golfer input of an estimated or measured distance. In FIG. 7, ball marker 52 is shown as having three input buttons 90-94 and a display 96 that displays a distance 98 (which is shown as being 59 ft.). Buttons 90-94 can be pressed to input or modify distance 98.

For example, in one exemplary configuration, button 90 can be pressed to switch between modes for entering distance and for requesting an angle. Prior to placing ball marker 52 behind ball 78, the estimated distance can be input such as by using buttons 92 and 94. For example, button 92 can be used to change the value of the most significant digit of distance 98 (five in this case), and button 94 can be used to change the value of the least significant digit of distance 98 (nine in this case). Alternatively, in a different configuration, button 92 can be used to increase distance 98, and button 94 can be used to decrease distance 98.

As described above, buttons 90-94 are only one way in which input can be provided to ball marker 52, and any other type of input device or means can also be used. For example, display 96 can be a touch display so that no buttons or other input controls are required. In other cases, a combination of buttons or other input controls and a touch screen can also be provided. Similarly, ball marker 52 can be configured to accept speech input in some embodiments. Accordingly, ball marker 52 can receive user input of an estimated distance in any appropriate manner. Alternatively, distance information may be input via mobile computing device 54.

Once a distance is input, ball marker 52 can be placed behind the ball 78, as shown in FIGS. 5 and 6, after which the ball 78 may be removed from the green 70. Referring specifically to the example in FIG. 7, after a distance is input, button 90 can be pressed to switch to the mode for acquiring an angle. In this mode, ball marker 52 can use compass module 62 to determine an angle from true north and submit the determined angle and the distance input by the golfer to server system 58 via mobile computing device 54, or simply to mobile computing device 54. In some embodiments, compass module 62 can be configured to detect the angle once ball marker 52 has been at rest for a specified duration of time or in response to input from the golfer (which would allow the golfer to align the indication with the hole 74 prior to the angle determination being made). Once the angle is determined by compass module 62, ball marker 52 can be picked up or otherwise removed from the putting surface 72.

As can be seen, in this manner ball marker 52 only requires the golfer to input an estimated distance and then place the ball marker 52 behind the golf ball 78. Often, a golfer chooses or is required to mark his ball 78 on the green 70 with some type of ball marker, and therefore, placing ball marker 52 behind ball 78 does not require any additional time than would otherwise be taken by the golfer.

Using embodiments and implementations of the present invention, the only additional step required of the golfer is the input of an estimated distance. However, because ball marker 52 can provide recommended force and direction information for putting the ball 78, which the typical golfer would otherwise spend a significant amount of time determining mentally, the use of ball marker 52 may not slow play, and in many cases may even speed play.

For example, as will be more fully described below, ball marker 52 or mobile computing device 54 can inform the golfer approximately how hard the putt should be hit and the approximate direction to aim. This information can be determined and returned immediately by server system 58 for display on ball marker 52 or mobile computing device 54 thereby relieving the golfer from having to spend the time to figure out this information on his own. Alternatively, the information can be determined by mobile computing device 54 without reliance on server system 58, and can be displayed on mobile computing device 54 or transmitted to ball marker 52 for display. The golfer only needs to view the information on ball marker 52 or mobile computing device 54 and play the shot accordingly.

Using the measured or estimated distance input by the golfer and the angle calculated by compass module 62, server system 58 and/or mobile computing device 54 can accurately determine the position of the ball 78 on the green 70. Using this position in combination with the known position of the hole 74 and the topography of the green 70, server system 58 and/or mobile computing device 54 can calculate the approximate amount of force with which the ball 78 should be hit, and the approximate direction to hit the ball 78. For example, based on the topography of the green 70 between the position of the ball 78 and the hole 74, server system 58 and/or mobile computing device 54 might determine that the hole 74 is four feet uphill from the ball 78 and that there is a rightward slope of ten degrees. Server system 58 and/or mobile computing device 54 can therefore recommend hitting the ball 78 X feet to the left of the hole 74 (to account for the break to the right) and with a force Y (to account for the uphill slope).

FIG. 8 illustrates an exemplary display of recommended force and direction information on ball marker 52. As shown, given an estimated distance of fifty-nine feet and the other known parameters, server system 58 and/or mobile computing device 54 has recommended that the putt be hit with a force of sixty-five feet (i.e. with a force that would result in the ball moving sixty-five feet over a flat green) and at three feet to the left of the hole 78. While FIG. 8 illustrates the information being displayed on ball marker 52, the information could similarly be displayed on mobile computing device 54.

In some embodiments, server system 58 and/or mobile computing device 54 can also provide recommended force and direction information for other distances around the estimated distance. For example, because the estimate is likely not to be perfectly accurate, server system 58 and/or mobile computing device 54 can calculate recommended force and direction information for distances of fifty-six, fifty-seven, fifty-eight, sixty, sixty-one, and sixty-two feet using the same determined angle. FIG. 9 illustrates an exemplary display that includes recommended swing parameters for multiple distances. The number of distances for which swing parameters are recommended can be a user configurable parameter or may vary based on the topography of the green 70.

In this way, the golfer can easily see if a change in the estimated distance will result in a significant change in the recommended shot. For example, if a significant break existed at 60 feet from the hole but not at 58 feet from the hole (as shown in FIG. 9 by the eleven-inch difference between the recommended aim for fifty-eight feet and sixty feet), the golfer could see the significant difference between recommended force/distance information and adjust his shot accordingly. However, if the force/distance information changed essentially linearly with the estimated distance, the golfer might not be too concerned that following recommended information for the wrong distance will give undesirable results.

While certain embodiments may minimize the chance that the use of such embodiments will slow the rate of play, embodiments of the present invention can also be implemented with other variations. For example, in some embodiments, ball marker 52 may not include input or display capabilities. In such cases, mobile computing device 54 can be used to receive the golfer's estimated distance, and to display the recommended force/direction parameters to the golfer. Ball marker 52 can include compass module 62 that determines an angle as described above and communication module 66 that relays this angle to mobile computing device 54. Accordingly, in such embodiments, the ball marker 52 is placed in the same manner as described above, but the golfer interfaces with mobile computing device 54 to input the estimated distance and to view recommended swing parameters.

Also, even in embodiments as described above where the ball marker 52 includes input and display capabilities, the golfer may choose to use either ball marker 52 or mobile computing device 54 to provide input and to view recommended swing parameters. Using mobile computing device 54 may at times be less desirable because it may tend to slow the rate of play, although the golfer may also obtain information while waiting for other golfers without any slowing of the rate of play.

In other embodiments, ball marker 52 can include functionality so that a separate mobile computing device 54 is not required. In such cases, ball marker 52 can include functionality to directly communicate with server system 58. For example, ball marker 52 can communicate directly over a mobile data network, a Wi-Fi network, or another type of network providing direct access to server system 58 (e.g. via a network such as the Internet). In some embodiments, a golf course may desire to place routers or other access points within proximity of a green to allow ball marker 52 to use Wi-Fi communications to transfer information to and receive information from server system 58. Of course, other communication protocols could also be used in a similar manner.

In further embodiments, it is also possible that ball marker 52 or mobile computing device 54 contain sufficient processing power and storage to perform the functions of server system 58 described above. In such cases, ball marker 52 (or ball marker 52 in communication with mobile computing device 54) would not need to communicate with any other computing device, but could calculate recommended force/direction parameters using stored hole location and topography information in conjunction with an input estimated distance and determined angle. The improvements in methods to calculate swing parameters discussed in more detail below permit rapid and less computing-resource-intensive determination of swing parameters. Thus, it should be emphasized that the embodiments and implementations of the invention should not be limited to any particular computer environment or architecture.

In other variations, the calculation and provision of recommended force/direction information can be accomplished using only GPS data. Current GPS devices generally lack the precision necessary to provide useful force/direction recommendations (because even minor errors in detecting or determining location can result in relatively useless data). However, advances in GPS technology that improve the accuracy of determining the exact location of a ball (e.g. within inches of the exact location) would enable a ball marker 52 or mobile computing device 54 to be used that detects its position using GPS data alone. In other words, the force/direction information could be calculated as described above using the known location of the hole 74 and topography in conjunction with a position of the ball 78 reported by the ball marker 54 and/or mobile computing device using GPS coordinates. Additionally or alternatively, current or future GPS data could be combined with other location triangulation signals, such as signals provided by the golf course and received by ball marker 52 and/or mobile computing device 54.

In some embodiments, rather than requiring the golfer to input an estimated distance, the distance between a ball and the hole can be estimated using stereophotogrammetry techniques. Stereophotogrammetry is a sophisticated technique which involves estimating the three-dimensional coordinates of the ball 78 and the hole 74 on the putting surface 72 using a photograph that includes the ball 78 and the pin 76 (or flagstick). In such embodiments, mobile computing device 54 can be used to take a photograph with sufficient resolution to allow mobile computing device 54 and/or server system 58 to calculate the distance using the pixels of the photo. This calculation could also employ the angle determined using compass module 62 in the manner described above and/or other information contained in the photograph. In some cases, GPS coordinates can also be used to enhance this calculation.

The photograph can be taken in various ways such as: (1) from behind the ball 78 in approximate alignment with the pin 76 at a distance which captures both the pin 76 and the ball 74 within the field of view; (2) from between the ball 78 and hole 74 at a distance which captures both the pin 76 and the ball 78 within the horizontal field of view; or (3) from over top of the ball 78 which captures the pin 76 but not the ball 78. In some embodiments, multiple photographs can be taken and analyzed using stereophotogrammetry techniques.

In cases where the photograph is taken of only the pin 76, known parameters about the height of the camera when taking the picture can be used in the stereophotogrammetry calculations. For example, the golfer can take a photograph with the camera positioned at chest level. Prior to taking the picture (e.g. when registering an account), the golfer can specify his height or a height at which he holds mobile computing device 54 when taking a picture. This height can then be used in the calculation.

When calculating the optimal putt swing speed, it may be desirable to compensate for the weight or “mass” of the golfer's putter. Accordingly, in some embodiments, ball marker 52 and/or mobile computing device 54 further comprises an input field where the golfer is prompted to enter a value which indicates the mass of the golfer's putter (e.g. by directly inputting the mass, by inputting the putter model, etc.).

Ball marker 52 and/or mobile computing device 54 can also be configured to determine or receive other variable parameters that may affect a putt such as wind speed, grass length, humidity, etc. In some embodiments, one or more of these additional parameters can be reported to server system 58 and/or mobile computing device 54 and be used in the calculation of the recommended swing parameters.

In some embodiments, the systems of embodiments or implementations of the present invention further include a user database which is configured to record and store putt data and other calculations determined by ball marker 52 and mobile computing device 54 during the golfer's round of golf and/or during the rounds of golf of other golfers. For example, in some embodiments information received and calculated by ball marker 52 and/or mobile computing device 54 is uploaded to a database which is made available to the golfer for subsequent analysis and record-keeping. For example, a golfer may be required to register or subscribe to a database service to gain access to the golfer's putt data. Alternatively, mobile computing device 54 may include a database software application which is configured to automatically store and update the golfer's putt data in real-time. Further still, in some instances a database is provided which is part of a social network where the golfer's putt data (e.g. the length of putts and ball orientation) is posted and made available for public viewing and comment. The golfer's putt data may further be updated to a community website that is provided for tracking a golfer's progress or activity. The golfer's putt data may further include a topographical image of green 70, thereby providing a visual representation of the golfer's putt data.

In some embodiments, mobile computing device 54 (or server system 58) analyzes the golfer's putt data to learn green 70 and thereby modify putt instructions for the golfer and/or for other golfers based upon the precise position of the ball 78. Thus, mobile computing device 54 (or server system 58) comprises learning capabilities. In some embodiments, the learning capabilities of mobile computing device 54 further analyze and learn the mechanics or tendencies of the golfer's club swing and thereby modify the putt instructions to compensate for the golfer's style and/or skills.

In some embodiments, the systems and devices of the present invention are further used in combination with a swing speed trainer which is designed to assist the golfer in learning and/or adjusting his swing speed. A swing speed trainer may include a software application and hardware which analyzes a golfer's golf swing and swing speed in real-time during the golfer's putting practice. For example, in some instances a swing speed trainer is provided having portable hardware for following the golfer's swing using six degrees of freedom to detect detailed results of each putter stroke in real-time. As such, the swing speed trainer may provide the golfer with practice swing information such as the degree to which the given swing at a planned point of impact was open, closed, forward of the putter sweet spot, behind the sweet spot, lofted or de-lofted. This information may be used in combination with the information derived by ball marker 52 and mobile computing device 54 to provide the golfer with accurate and personalized ball line and swing speed values to assist the golfer in taking each putt stroke.

Golf courses often change the hole location on the greens. Therefore, each time a hole location is moved, it is necessary to update the known hole location used by server system 58, mobile computing device 54, and/or ball marker 52. This can be accomplished in a variety of ways. When the topography of the green is determined, the location of one or more fixed features (e.g. sprinkler heads) around the green can be determined and stored with the topography information. Then, each time a new hole location is selected, a tripod (or similar device) can be placed over top of the fixed feature and used to identify the precise location of the new hole location.

The calculation of the new hole location can be performed in a similar manner as described above with respect to determining the position of the ball on the green. That is to say, the tripod can be placed so that it aims directly at the new hole location. An insert can be placed in the new hole location to assist in aiming the tripod towards the new hole location. The tripod can contain a compass module (similar to compass module 62) that determines an angle from true north at which the tripod is placed, and can contain a distance calculation module (e.g. a laser distance measurement device) that accurately determines the distance between the fixed feature and the new hole location (i.e. the insert in the new hole location). The angle and distance can be uploaded to server system 58, mobile computing device 54, and/or ball marker 52 which calculates a new hole location using the known location of the fixed feature.

Of course, this process could also be performed in reverse by placing the insert (or its equivalent) over top of the fixed feature and placing the tripod overtop of the new hole location. The server system 58 could be notified of where the measurements were taken to allow the appropriate calculation.

Alternatively, rather than placing the tripod over top of the fixed feature each time the hole location is updated, the old hole location can be used as the known location for calculating the new hole location. In other words, because server system 58 already knows the old hole location, the new location can be determined using the angle and distance parameters with respect to the old hole location.

For example, the tripod can be placed over top of the old hole location and positioned with respect to the new hole location as described above (i.e. by aiming it towards the insert and determining the distance). The angle and distance can be reported to server system 58, mobile computing device 54, and/or ball marker 52 which can calculate the new hole location accordingly. Again, this process could also be performed in reverse by placing the tripod over the new hole location and placing the insert in the old hole.

In some embodiments, the golf course can be provided with the option to update the hole location using any of the above described approaches. In such cases, the tripod or other device used to submit angle and distance information to server system 58, mobile computing device 54 and/or ball marker 52 can include the ability to specify which locations (e.g. fixed feature, old hole, or new hole locations) were used to obtain the angle and distance. While the hole location information may be determined and received using the methods discussed above, the hole location information may be received using any appropriate methods.

In summary, a ball marker can be used to submit ball location to a server system and/or to a mobile computing device in a quick and efficient manner thereby allowing the quick provision of swing parameter recommendations so that the pace of play is not slowed. The ball marker can therefore provide additional enjoyment to the game of golf by assisting golfers to be more proficient putters. Further, although the above description has primary described the use of ball marker to determine putting recommendations, the same techniques can be applied to provide swing recommendations for other types of shots onto the green such as chipping and pitching. For example, by determining the position of a ball next to or near the green, the system could provide swing parameter recommendations that account for the green topography when the golfer is chipping or pitching onto the green.

FIG. 10 illustrates a flowchart of an exemplary method 100 for generating recommended swing parameters for putting a golf ball on a green. Method 100 can be implemented by a computing device such as a golfer's smart phone or other device carried by the golfer. Method 100 includes an act 102 of receiving, from a digital compass ball marker that is placed on a green, proximate to a ball lying on the green, in an orientation that defines a line between the ball marker and a hole in the green, an angle between the line defined by the orientation and true north. For example, mobile computing device 54 can receive an angle from ball marker 52 when or after ball marker has been placed on a green.

Method 100 includes an act 104 of receiving an indication of a distance between the ball and the hole. For example, an estimated distance can be input to ball marker 52 and transmitted to mobile computing device 54, can be input directly into mobile computing device 54, or one or more photographs which include the pin and/or ball can be taken by or provided to mobile computing device 54. Method 100 further includes an act 106 of submitting the angle and the indication of the distance to a server system. For example, mobile computing device 54 can submit the angle and indication of the distance to server system 58. Method 100 finally includes an act 108 of receiving, from the server system, recommended swing parameters for putting the ball into the hole, the recommended swing parameters being based on the angle, the distance, a known position of the hole, and known topography of the green. For example, mobile computing device 54 can receive recommended swing parameters from server system 58 that can be displayed to the golfer either on mobile computing device 54 or on ball marker 52.

While the method illustrated by FIG. 10 utilizes a server system such as server system 58 to receive information, calculate swing parameters, and return swing parameter results, the method may be varied as discussed above. For example, the method may be varied by having a mobile computing device such as mobile computing device 54 perform the functions illustrated as being performed by the server system in FIG. 10. Similarly, another device, such as ball marker 52 could be tasked with performing the functions illustrated as being performed by the server system in FIG. 10. Indeed, the improvements in methods for determining and/or calculating swing parameters discussed in more detail below will significantly reduce the computing power necessary to arrive at such swing parameters, making it more feasible for consumer electronic devices such as mobile computing device 54 and/or ball marker 52 to successfully determine and/or calculate such swing parameters.

Accordingly, while the method of FIG. 10 is illustrative of certain embodiments and/or implementations of methods for generating recommended swing parameters, it should not be deemed restrictive. Indeed, it will be understood how steps illustrated in FIG. 10 may need to be modified to account for the omission of a server system and/or for the omission of a separate mobile computing device. Similarly, such steps could be modified to account for the omission of a digital compass ball marker and use of a mobile computing device only (e.g. through methods such as the stereophotogrammetry methods discussed above). Finally, it should be understood that the steps of FIG. 10 have been defined more or less from the viewpoint or standpoint of the mobile computing device 52. Similar but modified steps could alternatively be defined from the viewpoint or standpoint of ball marker 52 and/or server system 58.

Current methods for generating recommended swing parameters generally rely on brute force computational methods to determine the swing parameters. Solutions to the problem of selecting a putt path are currently deduced from a multi-variable differential equation that may have many solutions depending on an initial starting direction and speed. Solving for an optimal path and its initial parameters in current fashions can be difficult. A traditional way of doing this has been to guess an initial speed and starting direction based on the ball's original starting location. The initial speed and direction is then adjusted until the projected path and ending location of the ball is roughly in the area of the desired end position. The problem is computationally difficult to solve and is inefficient, since the initial speed and angle are dependent on each other. The co-dependence of the initial factors greatly increases the computational power necessary to determine the recommended swing parameters. Therefore, current methods for generating recommended swing parameters are generally inappropriate for performance by mobile computing devices (e.g. today's smart phones), and users are required to be connected to external computing resources.

In some instances, external computing resources may not be available to a golfer on the golf course. Embodiments of the invention permit computing of recommended swing parameters without relying on external computing resources. Thus, for example, a golfer may be able to determine recommended swing parameters using only a mobile computing device such as a smart phone or a golf-specific mobile computing device. Thus, embodiments of the invention provide methods and means of calculating a path of a golf ball on a putting surface and methods and means of calculating an ideal putt direction and speed to cause a golf ball in an initial location on a putting surface to, when putted, enter a hole in a putting surface. The on-the-spot computing resources required to perform methods according to embodiments of the invention are greatly reduced when methods according to embodiments of the invention are used, as the putt path problem can be solved quickly and efficiently using the methods disclosed herein.

According to methods used by embodiments of the invention, the putt path problem is reduced to a single variable differential equation, eliminating the multiple dependent variable equation used by previous methods. According to such methods, the putt path problem is reversed, with the hole 74 being treated as the starting position of the ideal putt path, and with the initial position of the ball 78 being treated as the ending position of the ideal putt path. Computationally, the calculation or determination of an ideal putt path is as if a video of the ideal putt path were played backwards, with the ball 78 starting at the hole 74 with an initially relatively slow speed, and with the ball 78 speeding up until it reaches its initial position. This method reduces the variables to be considered to, first, the final speed of the ball 78 at the hole 74, and second, the angle at which the ball 78 arrives at the hole 74. Because the ideal speed of the ball 78 at the hole 74 can be readily determined, the problem effectively reduces to determining the best angle for the ball 78 to arrive at the hole 74.

FIG. 11 illustrates a flowchart of an exemplary method 110 of determining a putt path that will arrive at the hole 78 at a particular final velocity (angle and speed). The method 110 begins with step 112, in which the angle from which the ball 74 will arrive at the hole 78 is selected, determined, or otherwise received. This angle may be selected using a variety of methods, some of which will be discussed in more detail below. The method 110 continues with step 114, in which a speed at which the ball 74 is moving when the ball 74 would enter the hole 78 from the selected direction is determined. According to research, the ideal speed with which the ball 74 should arrive at the hole 78 would be the speed at which the ball 74 would roll over an uninterrupted green (as if the hole 78 weren't there) and roll past the hole 78 approximately seventeen to nineteen inches past the hole 78.

This initial speed might be varied according to a variety of factors, therefore the example final distance range of the ball 78 from the hole 74 of approximately seventeen to approximately nineteen inches might vary, by way of example only, from approximately fifteen to approximately twenty-one inches, from approximately thirteen to approximately twenty-three inches, from approximately eleven to approximately twenty-five inches; from approximately nine to approximately twenty-seven inches, from approximately seven to approximately twenty-nine inches, from approximately five to approximately thirty-one inches, from approximately three to approximately thirty-three inches, and from approximately one to approximately thirty-five inches. Factors that may be considered in selecting the final distance range of the ball 78 from the hole 74, include the angle from which the ball 78 will arrive, a slope of the putting surface 72 around the hole 74, an original distance between the initial location of the ball 78 and the hole 74, a speed of the putting surface 72, other conditions that may affect an ideal speed with which the ball 78 should arrive at the hole 74.

To obtain the speed with which the ball 78 should arrive at the hole 74 in the chosen direction, it may be assumed that the hole 74 is located on a plane having no curvature in the area surrounding the hole 74. This is typically a reasonable assumption, as in practice holes are generally placed on more planar areas of greens, rather than along or near curved ridges. The assumption may therefore be made that the putting surface 72 is nearly planar in a circle around the hole 74, such as a circle having a radius of approximately one meter. Then, a simple trigonometric calculation can be used to calculate the approximate speed of the ball 78 as it arrives at the hole 74 in the chosen direction.

Once the speed of the ball 78 as it arrives at the hole 74 has been determined, the method 110 continues at step 116, where the sum of forces to which the ball 78 is subject when rolling at the current location is determined. Such forces at least include the gravitational force exerted on the ball 78 by gravity, the normal force exerted on the ball 78 by the putting surface 72, and the rolling frictional force exerted on the ball 78 by the putting surface 72 as the ball rolls along the putting surface 72. If any other forces should be taken into account, such as forces exerted by existing wind conditions, they may also be taken into account. Research has shown that the rolling frictional force to which a golf ball is subject at typical putt speeds of up to approximately four meters per second is largely independent of speed and can be approximated by a constant. The effect is that a putt path may be solved in reverse with the same result as a putt path solved in a forward direction.

Once the sum of forces to which the ball 78 is subject has been determined, the method 110 may proceed to step 118, where a previous location of the ball 78 is calculated and to step 120, where a previous velocity of the ball 78 is calculated. The previous location of the ball 78 and the previous velocity of the ball 78 may be calculated based on the current location (initially immediately adjacent the hole 74) and the current velocity (initially the velocity selected in step 114) and further based on the reverse or opposite of the sum of forces determined in step 116, such as according to the equation acceleration equals force divided by mass. The steps of calculating the previous location and previous velocity may be accomplished using any desirable step size, and may be determined using differential mathematics, as is known in the art. For example, if only a rough idea of the path to be calculated is needed (for example when initially selecting for just a rough idea of the angle at which the ball 78 should arrive at the hole 74), a step size may be made larger, and if a better idea of the path to be calculated is needed (for example when refining the determination of the angle at which the ball 78 should arrive at the hole 74), a step size may be made smaller. As may be appreciated, using larger step sizes may result in smaller computational loads on the computing device performing the method steps, which may be particularly useful when using computing devices having limited computational power.

Once the previous location and the previous velocity have been determined, the method 110 proceeds to step 122, where a determination is made as to whether the putt path has been calculated to a necessary extent. For example, it might be determined that the putt path should be calculated to a maximum distance of the edge of the putting surface 72, or some percentage past the initial distance between the initial location of the ball 78 and the hole 74 (e.g. approximately 150% to approximately 200%), whichever is greater. Thus, a decision may be made at decision block 124 whether the putt path has been calculated to the necessary extent. If yes, the method 110 ends. If not, however, the method 110 proceeds to step 126, where the previous location and the previous velocity are set to be the current location and the current velocity for further calculation of the putt path, and method 110 returns to step 116 for calculation of the next step of the putt path.

FIG. 12 illustrates a flowchart of an exemplary method 130 of calculating an ideal putt direction and speed, which may be accomplished in conjunction with methods similar to those discussed with respect to FIG. 11. The method 130 includes a first step 132 of calculating a first plurality of reverse paths leading from the hole. These paths may be determined according to the method 110 of FIG. 11 or according to similar methods. According to a first example, the first plurality of reverse paths includes three reverse paths, and the three reverse paths are calculated based on three final angles and final speeds, which are the final speeds and final angles (e.g. the final velocities) with which the ball 78 would arrive at the hole 74 in the path simulations. Other examples involve the calculation of two, four, five, or more reverse paths in step 132. Regardless of the number of reverse paths in the first plurality of reverse paths, the final speeds with which the ball 78 arrives at the hole 74 for each of the reverse paths (for each of the final angles) may be selected or calculated as discussed above.

The final angles with which the ball 78 arrives at the hole 74 for the first plurality of reverse paths may be selected according to a variety of methods. According to one exemplary method illustrated in FIG. 13, a first final angle 150 is selected to be the angle along the line 84 leading between the initial location of the ball 78 and the hole 74. Alternatively, the first final angle 150 might be selected to roughly take into account the line 84 as well as a contour of the putting surface 72, especially a contour of the putting surface 72 proximate the hole 74, where the ball 78 will be moving most slowly and be most subject to changes in motion imparted by the contour of the putting surface 72. After the first final angle 150 is selected, two additional final angles 152, 154 are selected that are at ninety degrees to the first final angle 150. The first plurality of reverse paths are calculated for each of the final velocities, such as is discussed above. As discussed above, a step size used for the initial calculation of reverse paths may be relatively large if desired to reduce computational power necessary at this stage of the process.

The method 130 then proceeds to step 134, where it is determined which of the reverse paths passes closest to the initial location of the ball 78. For example, in the Example of FIG. 13, it might be determined that the reverse path having final angle 154 passes closest to the initial location of ball 78.

Once the first plurality of reverse paths have been calculated and it has been determined which path passes closest to the initial location of the ball 78, the method 130 proceeds to decision block 136. At this point, a determination is made as to whether the calculated reverse paths that passes closest to the initial location of the ball 78 passes close enough to the initial location of the ball 78. In various embodiments, what qualifies as close enough may be defined or determined according to an aspect of the computing device, the program, or even via user input. If, for example, a first computing device is computationally limited to an extent that prevents calculating ideal swing parameters with a precision that might be computationally feasible on a second computing device, the distance that may be considered close enough may be larger on the first computing device than on the second computing device. As another example, if the user finds that using systems and methods as described herein results in unacceptable slowing of play while the user waits for the ideal swing parameters, the user might provide an input to the system to reduce the necessary precision and speed up computational results. Thus, embodiments of the invention embrace a variety of distances between a reverse path and the initial location of the golf ball 78 as being close enough to satisfy methods discussed herein, such as decision block 136.

If the closest reverse path fails to pass close enough to the initial location of the ball 78, the method 130 proceeds to step 138, where a new plurality of reverse paths leading from the hole 74 are calculated. The new plurality of reverse paths may include more, the same, or fewer reverse paths than any previous pluralities of reverse paths, and each reverse path may be calculated as previously described. As each new plurality of reverse paths is calculated, the determination of the ideal final angle and speed for the ball 78 to arrive at the hole 74 is refined. Returning to the specific example illustrated in FIG. 13 and as discussed above, final angle 154 might have been determined to have the best reverse path of the first plurality of reverse paths, and may be used in calculating the next plurality of reverse paths at step 138. In this example, as shown in FIG. 14, the new plurality of reverse paths is the second plurality of reverse paths.

The final angles with which the ball 78 arrives at the hole 74 for the second plurality of reverse paths may be selected according to a variety of methods. According to one exemplary method illustrated in FIG. 14, the first final angle is selected to be the final angle 154 from the best of the previous plurality of reverse paths. Alternatively, the first final angle might be selected to roughly take into account some difference between the final angles of the two closest of the previous plurality of reverse paths. Regardless, two additional final angles 156, 158 are selected that are a reduced angle from the previous iteration, such as at forty-five degrees to the first final angle (final angle 154, in this case). The second plurality of reverse paths are calculated for each of the final velocities, such as is discussed above.

It will be appreciated that if step sizes are not to be varied as the method progresses, one of the three reverse paths was already calculated in a previous step, so calculation of the second plurality of reverse paths can involve calculating one fewer reverse paths, further reducing computational power necessary to execute this step of the method. In contrast, if step sizes are to be varied as discussed above, a step size used for the calculation of the second (and subsequent) plurality of reverse paths may be reduced at each stage of the process (e.g. as the angle between the various selected final angles is reduced).

Once the new plurality of reverse paths has been calculated, the method 130 loops back to step 134, where a determination is made as to which of the reverse paths passes closest to the initial location of the ball 78. As may be appreciated, the method 130 may loop through step 134, decision block 136, and step 138 multiple times, with each time narrowing the spread of final angles used for the new plurality of reverse paths. For example, if final angle 156 from FIG. 14 passed closest to the initial location of the ball 78, a new plurality of reverse paths could be calculated as shown in FIG. 15, with final angles 160, 162 at, for example, twenty-two point five degrees from final angle 156. Then, if final angle 162 from FIG. 15 passed closest to the initial location of the ball 78, a new plurality of reverse paths could be calculated as shown in FIG. 16, with final angles 164, 166 at, for example, twelve point two-five degrees from final angle 156.

The repetition of step 134, decision block 136, and step 138 will quickly and efficiently arrive at an ideal putt path at a desired level of accuracy. In the specific examples discussed above, each repetition reduces the spread of the final angles by half. Thus, for example, within just sixteen iterations, the best final angle will be known to within just over one thousandth of a degree (90°/2̂16). Meanwhile, with just sixteen iterations, the method might require calculating only thirty-three reverse paths (three for the first plurality of reverse paths and an additional two for each new plurality of reverse paths). Thus, the method provides significant reductions in the computational power necessary to generate recommended swing parameters, and permits the performance of the method on a greater variety of devices, including wholly within current mobile computing devices such as general-purpose devices (e.g. smart phones) and special purpose devices (e.g. golf-specific devices).

Once one of the calculated reverse paths passes close enough to the initial location of the ball 78, the method 130 proceeds as illustrate in FIG. 12. In the method of FIG. 12, decision block 140 and step 142 are optional steps to be used in examples where a precision of calculating a reverse path is subject to variation, such as where lesser precision is used for earlier iterations of step 132, step 134, decision block 136, and step 138. At decision block 140, a determination is made as to whether the path that passed close enough to the initial location of ball 78 was calculated with sufficient precision. If not, method 130 proceeds to step 142, where a plurality of reverse paths are calculated with increased precision before the method loops back to step 134. At step 142, the plurality of reverse paths that are calculated with increased precision may be the same set of reverse paths as used in a previous iteration of step 138, step 134, and decision block 136, or the method may simultaneously narrow the spread of final angles around the best of the reverse paths from the previous iteration.

Once a reverse path is determined to pass close enough to the initial location of the ball 78 at decision block 136 and the reverse path is determined to have been calculated with sufficient precision at decision block 140 (or optional decision block 140 is skipped in an embodiment because reverse paths are always calculated with sufficient precision), method 130 proceeds to step 144, where a determination is made as to the velocity of the reverse path at a point or points closest to the initial location of the ball 78. At this stage of method 130, the best reverse path may include hundreds or thousands of data points at which the position, velocity, and acceleration vectors of the reverse path are known. If one point is very near the initial location of the ball 78, the velocity vector of that point may be used at step 144. Alternatively, a velocity vector may be inferred from the two calculated points nearest the initial location of the ball 78.

Method 130 then proceeds to step 148, where the velocity vector determined in the previous step (which by definition incorporates speed and direction components) is used to output ideal or suggested swing parameters to the user. The information may be output according to any of the methods discussed above.

As discussed above, as each reverse path is calculated, the reverse path is calculated using the sum of forces to which the rolling ball 78 is subject. The step 116 of determining the sum of forces to which the rolling ball 78 is subject may include referencing a force map of the putting surface 72. In one example, a force map of the putting surface 72 may be determined prior to the start of a round of golf (such as by a remote computing resource) and is provided to mobile computing device 54 either prior to or during the round of golf. Alternatively, the mobile computing device 54 generates the force map of the putting surface as needed. In a second example, the step 116 of determining the sum of forces to which the rolling ball 78 is subject includes determining a slope of the putting surface 72 at the current location. The step 116 may also include determining a coefficient of rolling friction of the putting surface 72 for current conditions of the putting surface 72.

While not specifically discussed above, a variety of other factors may be utilized to determine forces to which the rolling ball 78 is subject and/or the final speed of the ball 78 at the hole 74 for each final angle. Such factors may include surface conditions, whether the putt is uphill or downhill, what type of grass is utilized on the putting surface, etc. For example, because downhill putts have gravity assisting them to stay online, their optimum speed tends to be a little lower as they reach the hole, while uphill putts are being pulled off-line by gravity every time they hit an imperfection. To keep uphill putts on-line, the optimum speed tends to be faster.

Another example a factor that affects optimum speed and or force is the type of grass utilized. For example, Bermuda grass has a very strong grain, producing a situation in which optimum putting speed rolls a ball 78 as much as thirty-six inches past the back edge of the hole 74. This may be compared with situations in which greens with very little grain have measured optimum speeds that roll a ball 78 only five inches past the hole 74. Algorithms may be utilized to process such information, including the type of grass utilized, to provide a golfer with precise information.

Other factors include the speed of the green which may include factors such as the type of grass utilized to make the putting surface, the time of day, the length of grass, the contours of the green itself, the lie of the land surrounding the greens, etc. For example, when a green is next to water or constructed on a hill side, the path the ball will take will be influenced by these surrounding features. Embodiments of the invention utilize the actual measured green speed for a day or time, or utilizing average speed values provided for greens on a particular course or in a particular geographic area. Some embodiments may utilize additional information to adjust speed values throughout the day.

Further embodiments of the invention may utilize algorithms to adjust green speed for the passage of time. For example, the length of grass on the green affects the speed at which the ball will roll. Over the course of the day, grass length increases and the green speed measurement might change. Further, watering schedules and evaporation based on temperature during the day will affect the speed of the greens over the course of the given day. Accordingly, in some embodiments, the systems and methods may utilize algorithms that compensate for the various factors which affect the speed of greens during the day.

Therefore, embodiments of the invention provide systems and methods for calculating and providing golfers with recommended swing parameters in a more efficient manner that utilizes fewer computational resources and is therefore more suited for performance by systems such as mobile computing devices.

The present invention may be embodied in other specific forms without departing from its spirit or essential characteristics. The described embodiments are to be considered in all respects only as illustrative and not restrictive. The scope of the invention is, therefore, indicated by the appended claims, rather than by the foregoing description. All changes which come within the meaning and range of equivalency of the claims are to be embraced within their scope. 

What is claimed and desired to be secured by Letters Patent is:
 1. A computer-implemented method for calculating an ideal putt direction and speed to cause a golf ball in an initial location on a putting surface to, when putted, enter a hole in the putting surface, the method comprising computing-device-performed steps of: calculating a first plurality of reverse paths leading from the hole; determining which of the reverse paths passes closest to the initial location of the golf ball; calculating an additional plurality of reverse paths leading from the hole, the additional plurality of reverse paths comprising reverse paths closer to the reverse path that passed closest to the initial location of the golf ball than other prior reverse paths; repeating the steps of determining which of the reverse paths passes closest to the initial location of the golf ball and calculating an additional plurality of reverse paths leading from the hole until one of the additional plurality of reverse paths passes within a selected distance of the initial location of the golf ball; and determining and outputting a putt speed and angle based on the reverse path that passes within the selected distance of the initial location of the golf ball.
 2. A computer-implemented method as recited in claim 1, wherein each reverse path is calculated using a final, at-the-hole, speed chosen to emulate having the golf ball pass over the hole as if the putting surface lacked the hole, and stop within a chosen distance range of the hole.
 3. A computer-implemented method as recited in claim 2, wherein the chosen distance range is selected from the group consisting of: between approximately 17 to approximately 19 inches; between approximately 15 to approximately 21 inches; between approximately 13 to approximately 23 inches; between approximately 11 to approximately 25 inches; between approximately 9 to approximately 27 inches; between approximately 7 to approximately 29 inches; between approximately 5 to approximately 31 inches; between approximately 3 to approximately 33 inches; and between approximately 1 to approximately 35 inches.
 4. A computer-implemented method as recited in claim 1, wherein calculating each reverse path leading from the hole comprises: selecting a final, at-the-hole, direction; and selecting a final, at-the-hole, speed chosen to emulate having the golf ball pass over the hole in the final, at-the-hole, direction as if there was no hole in the putting surface, and stop within a chosen distance range of the hole.
 5. A computer-implemented method as recited in claim 4, wherein calculating each reverse path comprises: beginning from the hole as a first current location and with a first current velocity comprising the selected final, at-the-hole, direction and the selected final, at-the-hole, speed; determining a sum of forces to which the golf ball, when rolling across the putting surface, is subject at the current location based on gravitational, normal, and frictional forces at the current location of the golf ball; calculating a previous location and a previous velocity of the golf ball using the current location, the current velocity, and an opposite of the sum of forces at the current location; repeating the steps of calculating the sum of forces to which the rolling golf ball is subject at the current location and calculating a previous location and a previous velocity while using the previous location and the previous velocity as the current location and the current velocity for each repetition until the reverse path has been calculated to a selected extent.
 6. A computer-implemented method as recited in claim 5, wherein determining the sum of forces to which the rolling golf ball is subject at the current location comprises referencing a force map of the putting surface.
 7. A computer-implemented method as recited in claim 6, further comprising generating the force map of the putting surface.
 8. A computer-implemented method as recited in claim 5, wherein determining the sum of forces to which the rolling golf ball is subject at the current location comprises: determining a slope of the putting surface at the current location; and determining a coefficient of rolling friction of the putting surface for current conditions of the putting surface.
 9. A computer-implemented method as recited in claim 4, wherein calculating the first plurality of reverse paths comprises calculating three reverse paths comprising: a first reverse path having a first direction lying along a line extending between the initial location and the hole; a second reverse path having a first direction at a selected angle from the first direction of the first reverse path; and a third reverse path having a first direction at a selected angle from the first direction of the first reverse path that is opposite and equal to the angel of the second reverse path.
 10. A computer-implemented method as recited in claim 9, wherein the selected angle of the second reverse path is approximately ninety degrees.
 11. A computer-implemented method as recited in claim 9, wherein calculating an additional plurality of reverse paths comprises calculating two reverse paths, the two reverse paths comprising: a first new reverse path having a first new direction at a new angle from the first direction of a best reverse path of the prior calculation iteration, the new angle being approximately half the size of the selected angle from the prior calculation iteration; and a second new reverse path having a second new direction at an angle from the best reverse path of the prior calculation iteration opposite and equal to the new angle of the first new reverse path.
 12. A computer-implemented method as recited in claim 1, wherein the step of determining and outputting a speed and angle based on the reverse path that passes within the selected distance of the initial location of the golf ball comprises an action selected from the group consisting of: determining and outputting a putt speed and angle based on a point of the reverse path that passes within the selected distance of the initial location of the golf ball that is most proximate the initial location of the golf ball; and determining and outputting a putt speed and angle based on an interpolation between two points of the reverse path that passes within the selected distance of the initial location of the golf ball that are most proximate the initial location of the golf ball.
 13. A computer-implemented method for calculating a projected path of a golf ball on a putting surface to a hole in the putting surface, the method comprising computing-device-performed steps of: setting the hole as a current location; selecting a current velocity comprising a selected final, at-the-hole, direction and a selected final, at-the-hole, speed; determining the sum of forces to which the golf ball, when rolling, is subject at the current location based on gravitational, normal, and frictional forces at the current location of the golf ball; calculating a previous location and a previous velocity of the golf ball using the current location, the current velocity, and an opposite of the sum of forces at the current location; repeating the steps of calculating the sum of forces to which the rolling golf ball is subject at the current location and calculating a previous location and a previous velocity while using the previous location and the previous velocity as the current location and the current velocity for each repetition until the reverse path has been calculated to a selected extent.
 14. A computer-implemented method as recited in claim 13, wherein the final, at-the-hole, speed is chosen to emulate having the golf ball pass over the hole in the final, at-the-hole, direction as if there was no hole in the putting surface, and stop within a chosen distance range of the hole.
 15. A computer-implemented method for calculating an ideal putt direction and speed to cause a golf ball in an initial location on a putting surface to, when putted, enter a hole in the putting surface using the computer-implemented method of claim 13, the method for calculating an ideal putt direction and speed comprising computing-device-performed steps of: calculating a first plurality of reverse paths leading from the hole according to the computer-implemented method of claim 13; determining which of the reverse paths passes closest to the initial location of the golf ball; calculating an additional plurality of reverse paths leading from the hole according to the computer-implemented method of claim 13, the additional plurality of reverse paths comprising reverse paths closer to the reverse path that passed closest to the initial location of the golf ball than other prior reverse paths; repeating the steps of determining which of the reverse paths passes closest to the initial location of the golf ball and calculating an additional plurality of reverse paths leading from the hole until one of the additional plurality of reverse paths passes within a selected distance of the initial location of the golf ball; and determining and outputting a speed and angle based on the reverse path that passes within the selected distance of the initial location of the golf ball.
 16. A computer-implemented method as recited in claim 15, wherein a precision of calculation of each reverse path increases as the calculated reverse paths pass more closely to the initial location of the golf ball.
 17. A computer-implemented method as recited in claim 15, wherein a step size between current positions and previous positions of each reverse path is decreased as the calculated reverse paths pass more closely to the initial location of the golf ball.
 18. A non-transitory computer-readable medium containing computer program code means to cause a computing device to execute a method for calculating a projected path of a golf ball on a putting surface to a hole in the putting surface, the method comprising steps of: setting the hole as a current location; selecting a current velocity comprising a selected final, at-the-hole, direction and a selected final, at-the-hole, speed; determining the sum of forces to which the golf ball, when rolling, is subject at the current location based on gravitational, normal, and frictional forces at the current location of the golf ball; calculating a previous location and a previous velocity of the golf ball using the current location, the current velocity, and an opposite of the sum of forces at the current location; repeating the steps of calculating the sum of forces to which the rolling golf ball is subject at the current location and calculating a previous location and a previous velocity while using the previous location and the previous velocity as the current location and the current velocity for each repetition until the reverse path has been calculated to a selected extent.
 19. A non-transitory computer-readable medium containing computer program code means to cause a computing device to execute a method for calculating an ideal putt direction and speed to cause a golf ball in an initial location on a putting surface to, when putted, enter a hole in the putting surface using the method of claim 18, the method for calculating an ideal putt direction and speed comprising steps of: calculating a first plurality of reverse paths leading from the hole according to the method of claim 18; determining which of the reverse paths passes closest to the initial location of the golf ball; calculating an additional plurality of reverse paths leading from the, the additional plurality of reverse paths comprising reverse paths closer to the reverse path that passed closest to the initial location of the golf ball than other prior reverse paths; repeating the steps of determining which of the reverse paths passes closest to the initial location of the golf ball and calculating an additional plurality of reverse paths leading from the hole until one of the additional plurality of reverse paths passes within a selected distance of the initial location of the golf ball; and determining and outputting a speed and angle based on the reverse path that passes within the selected distance of the initial location of the golf ball.
 20. A system for improving putting comprising: a base station configured to calculate the position of the ball utilizing a device selected from the group consisting of a compass and a module configured to receive carrier wave signals from a satellite-based navigation system and to transmit phase measurements of the carrier wave signals; a server system comprising a topographical data set and configured to calculate recommended swing parameters using a position of a ball, a known position of a hole, and the topographical data set; and a digital ball marker comprising: a housing containing an indication for orienting the ball marker with respect to a hole in a green, wherein the ball marker is placed on a surface of the green proximate to the position of the ball lying on the green, the orientation defining a line from the ball marker that intersects the hole; a receiver configured to receive signals from the global navigation satellite system and to receive phase measurements of the carrier wave signals from the base station, wherein the ball marker calculates the position of the ball by using the received signals and the received phase measurements; a communication module configured to transmit the position of the ball to the server system and to receive the recommended swing parameters for putting the ball into the hole; and a display for displaying the recommended swing parameters. 